1 REM ********************************* 2 REM ** CAPACITANCE METER SOFTWARE ** 3 REM ** NAME: CAP ** 4 REM ** (C) 1985, J.J. BARBARELLO ** 5 REM ** MANALAPAN, NJ 07726 ** 6 REM ** V 1.1, 11 NOV 85 ** 7 REM ********************************* 10 GOSUB 440:PRINT:R(0)=9.75:F(0)=19:R(1)=.00979:F(1)=2 20 DATA 120,169,0,141,1,221,169,2,141,1 30 DATA 221,162,2,160,0,169,1,45,1,221 40 DATA 240,15,232,234,234,234,234,234 50 DATA 224,0,208,239,200,192,0,208,234 60 DATA 142,0,193,140,1,193,88,96,999 70 A=49152:C=A:FORI=1TO16:SP$=SP$+" ":NEXT 80 B1$=CHR$(176)+"[195][195]"+CHR$(174) 90 B2$=CHR$(173)+"[195][195]"+CHR$(189) 100 READ B:IF B<>999 THEN POKE A,B:A=A+1:GOTO 100 110 GOSUB 620:POKE 56579,254:POKE 56577,6 120 COL=10:RO=9:GOSUB670:PRINT B1$:RO=10:GOSUB670:PRINT"[194]F1[194]"; 130 PRINT B$;" _ LOW RANGE":RO=11:GOSUB670:PRINT B2$ 140 RO=12:GOSUB670:PRINT B1$:RO=13:GOSUB670:PRINT"[194]F3[194]";B$;" _ HIGH RANGE" 150 RO=14:GOSUB670:PRINT B2$:RO=15:GOSUB670:PRINT B1$ 160 RO=16:GOSUB670:PRINT"[194]F5[194]";B$;" _ CLEAR DISPLAY":RO=17:GOSUB670:PRINT B2$ 170 RO=18:GOSUB670:PRINT B1$:RO=19:GOSUB670:PRINT"[194]F7[194]";B$;" _ OFF" 180 RO=20:GOSUB670:PRINT B2$:GOTO 270 190 CO=12:RO=5:GOSUB 670:PRINT SP$ 200 SYS C:X=PEEK(49409)*256+PEEK(49408) 210 IF RI=0 AND X1000 THEN 240 230 AV=0:FOR I=1TO10:SYS C:X=PEEK(49409)*256+PEEK(49408):AV=AV+X:NEXT:X=AV/10 240 PRINTCHR$(159):IF X<=F(RI) THEN X$="[157][157][157]OUT OF RANGE":X=0 250 CO=18:ROW=5:GOSUB 670:X=(X-F(RI))/(43300*R(RI)):GOSUB510:PRINT X$ 260 RO=RR:CO=11:GOSUB670:PRINT FU$ 270 GET A$:IF A$="" THEN 270 280 G=ASC(A$):IF G<133 OR G>136 THEN 270 290 ON G-132 GOTO 300,320,340,360 300 RO=10:CO=11:GOSUB670:PRINTCHR$(18);"F1":RR=10:FU$="F1" 310 POKE 49159,2:POKE 56577,2:RI=0:FI=0:GOTO 190 320 RO=13:CO=11:GOSUB670:PRINTCHR$(18);"F3":RR=13:FU$="F3" 330 POKE 49159,6:POKE 56577,6:RI=1:GOTO 190 340 GOSUB 400:GOTO 270 350 POKE 49408,0:POKE 49409,0:GOTO190 360 REM** END 370 PRINTCHR$(147):RO=12:CO=10:GOSUB670 380 PRINTCHR$(18);" METER OFF ";CHR$(146);" - PROGRAM ENDED." 390 PRINT:PRINT:PRINT:END 400 REM** CLEAR DISPLAY (F5 FUNCTION) 410 RO=16:CO=11:GOSUB 670:PRINTCHR$(18);"F5" 420 CO=12:RO=5:GOSUB 670:PRINT SP$:FOR I=1 TO 200:NEXT I 430 RO=16:CO=11:GOSUB 670:PRINT"F5":RETURN 440 REM** FORMAT SCREEN= 450 POKE 53280,6:POKE 53281,6:PRINTCHR$(147) 460 B$=CHR$(30)+CHR$(18):BL$=" "+B$+" ":PRINTBL$ 470 PRINTTAB(8);CHR$(30)CHR$(18)CHR$(142);" C-64 CAPACITANCE METER " 480 PRINTBL$:BB$=" "+B$+" "+CHR$(146)+" "+B$+"[160][160]" 490 PRINTBB$:PRINTBB$:PRINTBB$ 500 FORI=1TO14:PRINTBL$:NEXT I:PRINT BL$:RETURN 510 REM ** FORMAT OUTPUT 520 IF X<=0 THEN RETURN 530 P$=RIGHT$(STR$(X),4):IF ASC(P$)<>69 THEN 580 540 P=VAL(RIGHT$(P$,2)):PO=P+2 550 X$=STR$(INT(X*10^PO+.5)) 560 X$=RIGHT$(X$,LEN(X$)-1):IF P=5 THEN X$=LEFT$(X$,2) 565 IF P$="E-03" THEN PRINT ".00"X$" UF": RETURN 570 X$=X$+" "+CHR$(18)+"PF":RETURN 580 P=1:IF X<1 THEN P=1000:GOTO 610 590 IF X<10 THEN P=100:GOTO 610 600 IF X<100 THEN P=10 610 X=INT(X*P+.5):X=X/P:X$=STR$(X):X$=RIGHT$(X$,LEN(X$)-1)+" UF":RETURN 620 REM* CURSOR CONTROL USING PLOT KERNEL ($FFF0) 630 DATA 162,0,160,0,24,32,240,255,96,999 640 A=49300:SC=A 650 READ B:IF B<>999 THEN POKE A,B:A=A+1:GOTO 650 660 RETURN 670 POKE SC+3,COL:POKE SC+1,ROW:SYS SC 680 RETURN